package cn.gzjp.modules.wx.entity;

import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import cn.gzjp.common.persistence.DataEntity;
import cn.gzjp.common.utils.excel.annotation.ExcelField;

/**
 * 企业号应用Entity
 * @author zengcp
 * @version 2017-09-18
 */
public class WxCorpAgent extends DataEntity<WxCorpAgent> {
	
	private static final long serialVersionUID = 1L;
	private String corpId;		// 企业ID
	private String name;		// 应用名称
	private String reportLocationFlag;		// 企业应用是否打开地理位置上报 0：不上报；1：进入会话上报；2：持续上报
	private String logoMediaid;		// 企业应用头像的mediaid，通过多媒体接口上传图片获得mediaid，上传后会自动裁剪成方形和圆形两个头像
	private String logoPath;		// 应用头像本地路径
	private String state;		// 显示状态:0隐藏，1显示
	private String token;		// 回调Token
	private String aesKey;		// 回调EncodingAESKey
	private String redirectDomain;		// 企业应用可信域名
	private String isreportuser;		// 是否接收用户变更通知。0：不接收；1：接收
	private String isreportenter;		// 是否上报用户进入应用事件。0：不接收；1：接收
	private String description;		// 应用说明
	private Date createTime;		// 创建时间
	
	private String corpSecret;//应用的凭证密钥
	
	public WxCorpAgent() {
		super();
	}

	public WxCorpAgent(String id){
		super(id);
	}

	@Length(min=0, max=100, message="企业ID长度必须介于 0 和 100 之间")
	@ExcelField(title="企业ID", align=2, sort=1)
	public String getCorpId() {
		return corpId;
	}

	public void setCorpId(String corpId) {
		this.corpId = corpId;
	}
	
	@Length(min=0, max=100, message="应用名称长度必须介于 0 和 100 之间")
	@ExcelField(title="应用名称", align=2, sort=2)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=0, max=6, message="企业应用是否打开地理位置上报 0：不上报；1：进入会话上报；2：持续上报长度必须介于 0 和 6 之间")
	@ExcelField(title="企业应用是否打开地理位置上报 0：不上报；1：进入会话上报；2：持续上报", align=2, sort=3)
	public String getReportLocationFlag() {
		return reportLocationFlag;
	}

	public void setReportLocationFlag(String reportLocationFlag) {
		this.reportLocationFlag = reportLocationFlag;
	}
	
	@Length(min=0, max=100, message="企业应用头像的mediaid，通过多媒体接口上传图片获得mediaid，上传后会自动裁剪成方形和圆形两个头像长度必须介于 0 和 100 之间")
	@ExcelField(title="企业应用头像的mediaid，通过多媒体接口上传图片获得mediaid，上传后会自动裁剪成方形和圆形两个头像", align=2, sort=4)
	public String getLogoMediaid() {
		return logoMediaid;
	}

	public void setLogoMediaid(String logoMediaid) {
		this.logoMediaid = logoMediaid;
	}
	
	@Length(min=0, max=100, message="应用头像本地路径长度必须介于 0 和 100 之间")
	@ExcelField(title="应用头像本地路径", align=2, sort=5)
	public String getLogoPath() {
		return logoPath;
	}

	public void setLogoPath(String logoPath) {
		this.logoPath = logoPath;
	}
	
	@Length(min=0, max=6, message="显示状态:0隐藏，1显示长度必须介于 0 和 6 之间")
	@ExcelField(title="显示状态:0隐藏，1显示", align=2, sort=6)
	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}
	
	@Length(min=0, max=100, message="回调Token长度必须介于 0 和 100 之间")
	@ExcelField(title="回调Token", align=2, sort=7)
	public String getToken() {
		return token;
	}

	public void setToken(String token) {
		this.token = token;
	}
	
	@Length(min=0, max=100, message="回调EncodingAESKey长度必须介于 0 和 100 之间")
	@ExcelField(title="回调EncodingAESKey", align=2, sort=8)
	public String getAesKey() {
		return aesKey;
	}

	public void setAesKey(String aesKey) {
		this.aesKey = aesKey;
	}
	
	@Length(min=0, max=100, message="企业应用可信域名长度必须介于 0 和 100 之间")
	@ExcelField(title="企业应用可信域名", align=2, sort=9)
	public String getRedirectDomain() {
		return redirectDomain;
	}

	public void setRedirectDomain(String redirectDomain) {
		this.redirectDomain = redirectDomain;
	}
	
	@Length(min=0, max=6, message="是否接收用户变更通知。0：不接收；1：接收长度必须介于 0 和 6 之间")
	@ExcelField(title="是否接收用户变更通知。0：不接收；1：接收", align=2, sort=10)
	public String getIsreportuser() {
		return isreportuser;
	}

	public void setIsreportuser(String isreportuser) {
		this.isreportuser = isreportuser;
	}
	
	@Length(min=0, max=6, message="是否上报用户进入应用事件。0：不接收；1：接收长度必须介于 0 和 6 之间")
	@ExcelField(title="是否上报用户进入应用事件。0：不接收；1：接收", align=2, sort=11)
	public String getIsreportenter() {
		return isreportenter;
	}

	public void setIsreportenter(String isreportenter) {
		this.isreportenter = isreportenter;
	}
	
	@Length(min=0, max=100, message="应用说明长度必须介于 0 和 100 之间")
	@ExcelField(title="应用说明", align=2, sort=12)
	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="创建时间", align=2, sort=13)
	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public String getCorpSecret() {
		return corpSecret;
	}

	public void setCorpSecret(String corpSecret) {
		this.corpSecret = corpSecret;
	}
	
}